<?php
require_once dirname(__FILE__) . '/lib.php';

$all = array_values(fetch_matches(false));

usort($all, function($a, $b) {
    $x = is_live($a) ? 0 : 1;
    $y = is_live($b) ? 0 : 1;
    if ($x != $y) return $x - $y;
    return (int)$a['_start'] - (int)$b['_start'];
});

$live = array();
$upcoming = array();

foreach ($all as $m) {
    if (is_live($m)) {
        $live[] = $m;
    } elseif ((int)$m['_start'] >= time()) {
        $upcoming[] = $m;
    }
}

$title = 'Xoilac TV - Trực tiếp bóng đá Xôi Lạc TV - Link Xoilac HD';
$desc = 'Xoilac TV - Xôi Lạc TV trực tiếp bóng đá hôm nay, cập nhật link Xoilac HD nhanh và ổn định. Xem bóng đá trực tiếp chất lượng cao, lịch thi đấu và các trận cầu hấp dẫn mỗi ngày.';

head_html($title, $desc, SITE_URL . '/');
header_html();

echo '<main class="container">';
echo '<section class="hero">';
echo '<div class="hero-copy"><div class="eyebrow">XOILAC TV 365</div><h1>Trực tiếp bóng đá hôm nay</h1><p>Xoilac TV - Xôi Lạc TV trực tiếp bóng đá hôm nay, cập nhật link Xoilac HD nhanh và ổn định. Xem bóng đá trực tiếp chất lượng cao, lịch thi đấu và các trận cầu hấp dẫn mỗi ngày.</p></div>';
echo '</section>';
echo '<div style="text-align:center;">
    <a href="/m.html" target="_blank" rel="noopener">
        <img src="/images/2x.jpg" alt="banner">
    </a>
</div>
<div class="promo-text" style="text-align:center;">
    <div>【1xBet】 – Nền tảng cá cược thể thao nổi tiếng toàn cầu</div>
    <div style="color:red;"><b>Phần thưởng 100% lên đến 5288888 VND cho lần nạp tiền đầu tiên</b></div>
    <div style="margin:15px 0 15px 0;">
        <a href="/m.html" target="_blank" rel="noopener"
           style="display:inline-block;padding:10px 25px;background:#e60000;color:#fff;text-decoration:none;border-radius:6px;font-weight:bold;">
           Đăng ký ngay – Nhận ưu đãi
        </a>
    </div>
</div>';
echo '<div class="filters" role="tablist" aria-label="Bộ lọc trận đấu">';
echo '<button class="filter active" type="button" data-filter="all">Tất cả</button>';
echo '<button class="filter" type="button" data-filter="live">Đang trực tiếp</button>';
echo '<button class="filter" type="button" data-filter="upcoming">Sắp diễn ra</button>';
echo '</div>';

echo '<section id="today" class="match-section">';
echo '<div class="sect"><div><h2>Đang trực tiếp</h2><p>Các trận đang phát</p></div><span>' . count($live) . ' trận</span></div>';
echo '<div class="grid match-grid">';
if (!$live) echo '<div class="empty">Hiện chưa có trận đang trực tiếp.</div>';
foreach ($live as $m) render_card($m);
echo '</div></section>';

echo '<section id="upcoming" class="match-section">';
echo '<div class="sect"><div><h2>Lịch thi đấu</h2><p>Trận sắp diễn ra</p></div><span>' . count($upcoming) . ' trận</span></div>';
echo '<div class="grid match-grid" id="upcoming-grid">';
foreach ($upcoming as $index => $m) render_card($m, $index >= 24);
if (!$upcoming) echo '<div class="empty">Chưa có lịch thi đấu sắp tới.</div>';
echo '</div>';
if (count($upcoming) > 24) {
    echo '<button class="load-more" id="load-more" type="button" onclick="showAllMatches(); return false;">Xem thêm trận đấu</button>';
}
echo '</section>';

echo '<section class="seo">';
echo '<h2>Xoilac TV - Trực tiếp bóng đá Xôi Lạc TV - Link Xoilac HD</h2>';
echo '<p>Xoilac TV cung cấp lịch thi đấu, tỷ số và trạng thái trận đấu được cập nhật tự động. Mỗi trận có một trang riêng với tiêu đề, mô tả và URL ổn định để công cụ tìm kiếm có thể lập chỉ mục.</p>';
echo '<h3>Trực tiếp bóng đá hôm nay</h3>';
echo '<p>Các trận đang diễn ra được ưu tiên ở đầu trang. Khi nguồn live khả dụng, trang trận đấu sẽ cung cấp trình phát HLS phù hợp với thiết bị.</p>';
echo '<h3>Lịch bóng đá</h3>';
echo '<p>Dữ liệu được lấy ở phía máy chủ và lưu cache ngắn hạn để giảm tải nguồn dữ liệu nhưng vẫn giữ tốc độ cập nhật.</p>';
echo '</section>';
echo '</main>';

echo '<script>
function showAllMatches(){
    var cards=document.querySelectorAll(".match-hidden");
    for(var i=0;i<cards.length;i++){
        cards[i].classList.remove("match-hidden");
        cards[i].style.display="";
    }
    var btn=document.getElementById("load-more");
    if(btn) btn.style.display="none";
}
</script>';
echo '<script src="/assets/app.js?v=20260819v8" defer></script>';
echo '<script type="application/ld+json">' . json_encode(array(
    '@context' => 'https://schema.org',
    '@type' => 'WebSite',
    'name' => SITE_NAME,
    'url' => SITE_URL . '/',
    'description' => $desc
), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . '</script>';

footer_html();

function render_card($m, $hidden = false) {
    $url = match_url($m);
    $hs = score_value($m, 'home');
    $as = score_value($m, 'away');
    $live = is_live($m);

    $class = 'card match-card';
    if ($hidden) $class .= ' match-hidden';

    echo '<article class="' . $class . '" data-status="' . ($live ? 'live' : 'upcoming') . '">';

    echo '<div class="top">';
    echo '<span class="competition-name" title="' . e($m['_competition']) . '">' . e($m['_competition']) . '</span>';

    echo '<time class="match-date">' . ($m['_start'] ? e(date('H:i - d/m', (int)$m['_start'])) : '--:--') . '</time>';
    echo '</div>';

    echo '<a class="teams" href="' . e($url) . '">';

    echo '<div class="team team-home">';
    echo '<strong title="' . e($m['_home']) . '">' . e($m['_home']) . '</strong>';
    if (!empty($m['_home_logo'])) {
        echo '<div class="logo-box"><img src="' . e($m['_home_logo']) . '" alt="' . e($m['_home']) . '" loading="lazy"></div>';
    } else {
        echo '<div class="logo-box logo-placeholder">⚽</div>';
    }
    echo '</div>';

    echo '<div class="match-center">';
    echo '<strong class="score-line">' . e($hs !== '' ? $hs : '-') . ' <em>-</em> ' . e($as !== '' ? $as : '-') . '</strong>';
    echo '</div>';

    echo '<div class="team team-away">';
    if (!empty($m['_away_logo'])) {
        echo '<div class="logo-box"><img src="' . e($m['_away_logo']) . '" alt="' . e($m['_away']) . '" loading="lazy"></div>';
    } else {
        echo '<div class="logo-box logo-placeholder">⚽</div>';
    }
    echo '<strong title="' . e($m['_away']) . '">' . e($m['_away']) . '</strong>';
    echo '</div>';

    echo '</a>';

    echo '<div class="card-bottom">';
    echo '<div class="bottom-status">';
    echo '<b class="' . ($live ? 'status-live' : 'status-upcoming') . '">';
    if ($live) echo '<i></i>';
    echo e($live ? 'ĐANG TRỰC TIẾP' : 'CHƯA BẮT ĐẦU');
    echo '</b>';
    echo '</div>';
    echo '<a class="watch" href="' . e($url) . '">XEM NGAY</a>';
    echo '</div>';
    echo '</article>';
}

